package com.zenithmind.chat.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zenithmind.chat.pojo.entity.AiChatTag;
import com.zenithmind.chat.pojo.vo.AiChatTagVO;

import java.util.List;

/**
 * AI对话标签服务接口
 */
public interface AiChatTagService extends IService<AiChatTag> {
    
    /**
     * 创建标签
     * @param tagName 标签名称
     * @param color 标签颜色
     * @return 标签ID
     */
    String createTag(String tagName, String color);
    
    /**
     * 删除标签
     * @param tagId 标签ID
     * @return 是否成功
     */
    boolean deleteTag(String tagId);
    
    /**
     * 更新标签
     * @param tagId 标签ID
     * @param tagName 标签名称
     * @param color 标签颜色
     * @return 是否成功
     */
    boolean updateTag(String tagId, String tagName, String color);
    
    /**
     * 获取用户的所有标签
     * @param userId 用户ID
     * @return 标签列表
     */
    List<AiChatTagVO> getUserTags(String userId);
    
    /**
     * 分页获取标签
     * @param page 分页参数
     * @param userId 用户ID
     * @return 标签分页数据
     */
    Page<AiChatTagVO> getTagPage(Page<AiChatTag> page, String userId);
    
    /**
     * 获取对话的所有标签
     * @param chatId 对话ID
     * @return 标签列表
     */
    List<AiChatTagVO> getChatTags(String chatId);
    
    /**
     * 为对话添加标签
     * @param chatId 对话ID
     * @param tagIds 标签ID列表
     * @return 是否成功
     */
    boolean addTagsToChat(String chatId, List<String> tagIds);
    
    /**
     * 从对话中移除标签
     * @param chatId 对话ID
     * @param tagId 标签ID
     * @return 是否成功
     */
    boolean removeTagFromChat(String chatId, String tagId);
} 